package edu.unmsm.ocaa.sisocaa.integracion.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;

import edu.unmsm.ocaa.sisocaa.integracion.dao.RespuestaDAO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.RespuestaDTO;

@Repository
public class RespuestaDAOImpl extends SqlMapClientDaoSupport implements RespuestaDAO {

	@Autowired
	public RespuestaDAOImpl(SqlMapClient map) {
		super.setSqlMapClient(map);
		// TODO Auto-generated constructor stub
	}
	
	public List<RespuestaDTO> getRespuesta(Integer idFicha, Integer idUsuario,
			Integer idPregficha) throws DataAccessException {
		// TODO Auto-generated method stub
		Map map=new HashMap();
		map.put("id_ficha", idFicha);
		map.put("id_pregficha", idPregficha);
		map.put("id_usuario", idUsuario);
		return (List<RespuestaDTO>)getSqlMapClientTemplate().queryForList("getRespuesta", map);
	}

	@Override
	public List<RespuestaDTO> getRespuestas(Integer idFicha, Integer idUsuario)
			throws DataAccessException {
		Map map=new HashMap();
		map.put("id_ficha", idFicha);
		map.put("id_usuario", idUsuario);
		return (List<RespuestaDTO>)getSqlMapClientTemplate().queryForList("getRespuestas", map);
	}

	@Override
	public void insertRespuesta(RespuestaDTO resp) throws DataAccessException {
		// TODO Auto-generated method stub
		getSqlMapClientTemplate().insert("insertRespuesta", resp);
	}

	@Override
	public List<RespuestaDTO> getRespuestasxOpc(Integer idFicha,
			Integer idPregficha, Integer idOpcpregficha, Integer idDep) {
		// TODO Auto-generated method stub
		Map map=new HashMap();
		map.put("id_ficha", idFicha);
		map.put("id_pregficha", idPregficha);
		map.put("id_opcpregficha", idOpcpregficha);
		map.put("id_dep", idDep);
		return (List<RespuestaDTO>)getSqlMapClientTemplate().queryForList(
				"getRespuestasxOpc", map);
	}

	@Override
	public List<RespuestaDTO> getRespuestasxPreg(Integer idFicha,
			Integer idPregficha, Integer id_dep) {
		// TODO Auto-generated method stub
		Map map=new HashMap();
		map.put("id_ficha", idFicha);
		map.put("id_pregficha", idPregficha);
		map.put("id_dep", id_dep);
		return (List<RespuestaDTO>)getSqlMapClientTemplate().queryForList(
				"getRespuestasxPreg", map);
	}

	@Override
	public RespuestaDTO getTotPtjexPreg(Integer idFichaParam,
			Integer idPregficha, Integer id_dep, Integer pond) {
		// TODO Auto-generated method stub
		Map map=new HashMap();
		map.put("id_ficha", idFichaParam);
		map.put("id_pregficha", idPregficha);
		map.put("id_dep", id_dep);
		map.put("pond", pond);
		return (RespuestaDTO)getSqlMapClientTemplate().queryForObject(
				"getPuntajexPreg", map);

	}

	@Override
	public Integer getExisteRespuesta(Integer id_ficha) {
		// TODO Auto-generated method stub
		return (Integer)getSqlMapClientTemplate().queryForObject("obtenerNroRespuestasxFicha", id_ficha);
	}

	@Override
	public void deleteRespuestaAnterior(RespuestaDTO resp) {
		getSqlMapClientTemplate().delete("deleteRespuestaAnterior", resp);
	}

}
